package org.dromara.generator.service;


import lombok.Data;
import lombok.experimental.SuperBuilder;

@Data
@SuperBuilder
public class ColumnConfig {

    // 表字段
    private String column;

    // 可以不指定 使用表字段camelCase;
    private String property;

    // 如果不是常用类型需要指定  java.util.Math 优先级高于propertyType
    private String propertyClass;

    // 如果是常用类型  可以使用这个字段指定默认的propertyClass
    private PropertyType propertyType;

    // 说明   可以不指定 默认表字段comment
    private String comment;

    // 前端 vue form的类型
    private VueType vueType;

    // 是否必填
    private Boolean require;

    // 是否加入搜索字段
    private Boolean search;
    // 是否需要添加
    private Boolean insert;
    // 是否是需要编辑
    private Boolean edit;


    public enum PropertyType {
        STRING, DATE, DECIMAL, BOOLEAN, TIME,DATETIME,INT, LONG;
    }

    public enum VueType {
        STRING,
        SWITCH,
        AVATAR,
        FILE,
        TEXTAREA,
        DATE,
        DATETIME,
        TIME,
        EDITOR; // 富文本
    }
}
